草庐IT

c++ - qdbusxml2cpp 未知类型

全部标签

c# - 如何检测一个对象是一个泛型集合,以及它包含哪些类型?

我有一个字符串序列化实用程序,它接受(几乎)任何类型的变量并将其转换为字符串。因此,例如,根据我的约定,整数值123将被序列化为“i:3:123”(i=整数;3=字符串长度;123=值)。该实用程序处理所有基本类型,以及一些非泛型集合,如ArrayLists和Hashtables。接口(interface)形式为publicstaticstringStringSerialize(objecto){}我在内部检测对象的类型并相应地对其进行序列化。现在我想升级我的实用程序来处理通用集合。有趣的是,我找不到合适的函数来检测该对象是一个通用集合,以及它包含什么类型——为了正确序列化它,我需要这

C# 将标志枚举类型变量中的设置标志转换为整数数组

我想出了这段代码,它转换类型为FlagEnumeration的变量中的设置标志,并将设置标志作为整数返回。我想知道这是否是最佳方法。示例枚举:[Flags]enumStatus{None=0x0,Active=0x1,Inactive=0x2,Canceled=0x4,Suspended=0x8}将设置标志转换为我想出的int数组的扩展方法:publicstaticclassExtensions{publicstaticint[]ToIntArray(thisSystem.Enumo){returno.ToString().Split(newstring[]{","},StringSp

c# - ConfigurationElementCollection 具有许多不同类型的 ConfigurationElements

是否有可能有一个CollectionElementCollection具有许多不同类型的CollectionElements,例如:我拥有此类解决方案所需的所有类:classMyCollection:ConfigurationElementCollection{}classMyElement:ConfigurationElement{}classMyType1:MyElement{}classMyType2:MyElement{}...etc但是当我启动我的应用程序时,我遇到了下一个可预测的错误:Unrecognizedattribute'Type1SpecificProp'.因为Ty

c# - 在 C# 中存储时间的类型和在 T-SQL 中的相应类型

我想知道如何在C#和T-SQL中存储时间。我知道它们都提供了DateTime类型,但我只需要存储一个时间。例如:varstartTime=9PM;varendTime=10PM;然后从数据库中存储/检索这些值。提前致谢。弗朗西斯科 最佳答案 C#是否使用C#中的DateTime或TimeSpan类型来存储9PM取决于个人喜好。就个人而言,我会使用DateTime,将日期组件留空,因为这在语义上更接近您想要的。(TimeSpan旨在保存时间间隔,例如“21小时”。)文档支持这两个选项。这是来自thedocumentationofTim

c# - 创建实现内部接口(interface)的类型

假设我有声明内部接口(interface)IInternalInterface的程序集。我无权访问此程序集的代码,也无法更改它。如何创建自己的IInternalInterface实现?为什么我需要这个:程序集包含带有IInternalInterface实现者列表的类,我的目标是在那里添加我自己的实现。 最佳答案 可以使用远程代理。请注意,我的回答只是一个草图,可能需要进一步改进。internalinterfaceIInternalInterface{voidSayHello();}//------------------------

c# - SqlParameterCollection 只接受非空的 SqlParameter 类型对象,不接受 DBNull 对象

当我将SQL参数p添加到集合中时,我得到一个InvalidCastException,其中包含帖子标题中的消息。parentId是一个可以为空的整数,在数据库中也是一个可以为空的整数。为什么会出现这个异常,我该如何解决?我不使用存储过程,我已经阅读过类似的主题,但它们对我没有帮助。varp=newSqlParameter("ParentId",SqlDbType.Int).Value=parentId??(object)DBNull.Value;cmd.Parameters.Add(p); 最佳答案 您没有添加新的SqlParame

c# - 什么是 C# 线程类型?

在三种线程类型(内核级、用户级和混合)之间,C#(或更普遍的.NET)使用哪种类型? 最佳答案 内核线程(1:1)术语“内核线程”可用于指代完全在内核空间中运行的实际线程,也可指代由内核调度的用户空间线程。术语“内核支持”线程指的是后者,即在用户空间中运行但由内核促进的线程,这通常意味着内核调度它们。内核线程享有特权,可以访问用户模式线程禁止访问的内容。看看维基百科上的“Ring(ComputerSecurity)”。在Windows上,用户模式对应于Ring3,而内核模式对应于Ring0。用户级线程(N:1)“用户级线程”通常是指

c# - C DLL 中的 PInvoke char* 在 C# 中处理为字符串。空字符问题

CDLL中的函数如下所示:intmy_Funct(char*input,char*output);我必须从C#应用程序调用它。我通过以下方式执行此操作:...DllImportstuff...publicstaticexternintmy_Funct(stringinput,stringoutput);输入字符串完美地传输到DLL(我有可见的证据)。该函数填写的输出虽然是错误的。我有hexa数据,比如:3F-D9-00-01但不幸的是,两个零之后的所有内容都被截断了,只有前两个字节进入了我的C#应用程序。它发生了,因为(我猜)它被视为空字符并将其作为字符串的结尾。知道如何摆脱它吗?我试

c# - 为什么可以只使用别名来声明枚举而不是 .NET 类型?

这很完美..publicenumNodeType:byte{Search,Analysis,Output,Input,Audio,Movement}这会返回编译器错误...publicenumNodeType:Byte{Search,Analysis,Output,Input,Audio,Movement}使用反射时也会发生同样的情况...那么,有人知道为什么enum-base只是一个整型吗? 最佳答案 可能它只是一个不完整的编译器实现(虽然有记录)。从技术上讲,这也应该有效,但事实并非如此。usingx=System.Byte;p

c# - 深度不可变类型的惰性初始化是否需要锁?

如果我有一个深度不可变类型(所有成员都是只读的,如果它们是引用类型成员,那么它们也引用深度不可变的对象)。我想在类型上实现一个惰性初始化属性,如下所示:privateReadOnlyCollectionm_PropName=null;publicReadOnlyCollectionPropName{get{if(null==m_PropName){ReadOnlyCollectiontemp=/*dolazyinit*/;m_PropName=temp;}returnm_PropName;}}据我所知:m_PropName=temp;...是线程安全的。我不太担心两个线程同时竞相初始化